알고리즘 문제풀이 [백준_14503] 로봇 청소기 문제 보기: 난이도: 골드 5 알고리즘 분류: 구현, 시뮬레이션 📌 문제에서 주어진 작동 조건에 따라 차례대로 수행하고, 네 방향 탐색 여부를 flag를 사용해 구분했습니다. 방향: 위, 오른쪽, 아래, 왼쪽 순서로 dy와 dx를 정의해 인덱스가 낮아질수록 현재 방향에서 왼쪽으로 회전하도록 합니다. 로봇 청소기: 현재 위치 _y,_x와 현재 방향_dir을 가집니다. 빈 칸은 0, 벽은 1, ... 백준알고리즘 문제풀이삼성 SW 역량테스트백준 [BaekJoon] 1927 최소 힙 (java) 자바에서 제공하는 라이브러리인 PriorityQueue는 일반적으로 최소힙과 같은 동작을 하여서 이번 문제는 PriorityQueue를 사용하여 간단하게 풀었다. 다른 사람들의 상위권에 위치한 성능 좋은 코드들을 보니 모두들 Heap구조를 직접 구현한 것을 확인할 수 있었다. 이를 보면 PriorityQueue자체가 메모리와 시간과 같은 성능 측면에서는 직접 구현한 코드들 보다 좋지는 않은것... heap알고리즘 문제풀이baekjoonbaekjoon [BaekJoon] 1092 배 (Java) 각각 무게 제한이 있는 N개의 크레인으로 M개의 컨테이너를 옮길 때 시간이 얼마나 걸리는지 구하는 문제이다. 문제를 해결하기 위해서는 컨테이너와 크레인을 각각 정렬한 후 각각의 크레인들이 현재 남아있는 컨테이너 중에서 자신이 들을 수 있는 가장 무거운 컨테이너들을 옮기도록 코드를 짜면 된다. 🚨 주의 처음에 문제를 풀며 매 시간당 크레인들이 index가 0인 컨테이너들부터 탐색을 하게 코드를... greedy algorithm알고리즘 문제풀이baekjoonbaekjoon [BaekJoon] 10930 SHA-256 (java) SHA-256은 SHA(Secure Hash Algorithm) 알고리즘의 한 종류로 256비트로 구성되며 64자리 문자열을 반환한다. 해시 알고리즘인 SHA-2 계열 중 하나이며, 2256만큼 경우의 수를 만들 수 있습니다. SHA-256 해시 함수는 어떤 길이의 값을 입력하더라도 256비트의 고정된 결과값을 반환합니다. SHA-256은 단방향 암호화 방식이기 때문에 복호화가 불가능합니다.... SHA-256알고리즘 문제풀이baekjoonSHA-256 [BaekJoon] 1966 프린터 큐 (java) queuebaekjoon알고리즘 문제풀이baekjoon BOJ 16953. A->B(python) BOJ 문제 16953. A->B 문제설명 정수 A를 B로 바꾸려고 한다. 가능한 연산은 다음과 같은 두 가지이다. 2를 곱한다. 1을 수의 가장 오른쪽에 추가한다. A를 B로 바꾸는데 필요한 연산의 최솟값을 구해보자. 입출력 예 솔루션 bfs를 이용한 완전탐색으로 구현 연산 중 B를 넘어가면 무시 B를 찾거나 Queue가 빌 때까지 연산을 수행한다. 코드... 백트래킹알고리즘 문제풀이bojboj [프로그래머스] Level 1 - 문자열 다루기 기본 해결방법 문자열 s를 탐색하며 s의 모든 문자가 숫자라면 true를 하나라도 아닐 경우 false를 반환한다. 나의 풀이... 알고리즘 문제풀이알고리즘 문제풀이 [BaekJoon] 16768 Mooyo Mooyo (Java) 해당 문제는 과거 뿌요뿌요 게임의 pop조건을 구현하는 문제이다. 문제에서는 K개 이상의 같은 수가 붙어있으면 해당 수들은 삭제가 되고 같은 라인에 있는 숫자들이 아래로 내려오는 결과를 보여주면 된다. 해당 문제를 풀기 위해서는 DFS를 사용하여 탐색을 하며 주변에 같은 수들이 몇개가 있는지 탐색 및 해당 위치들을 저장하며 진행해야한다. 만약 탐색을 하며 K개 이상의 블록이 붙어있다면 해당 ... DFSbaekjoon알고리즘 문제풀이DFS [BaekJoon] 1987 알파벳 (Java) 해당 문제는 NQueens문제처럼 상하좌우로 이동을 했을때 이동이 가능한가?에 대해 판단을 하며 DFS로 문제를 해결하면 쉽게 해결할 수 있다. DFS의 종료시점은 깊이가 아닌 이동이 불가능한 상태인지를 판단하며 상하좌우로 이동할 곳이 없으면 DFS를 더이상 깊게 들어가지 않게 코드를 작성하면 된다.... DFSBacktracking알고리즘 문제풀이baekjoonBacktracking [BaekJoon] 1461 도서관 (Java) 문제 정리: 양의 방향과 음의 방향으로 책을 가져다 둬야하는데 한번에 M개의 책을 갖고 갈 수 있으며 마지막에는 제자리로 돌아올 필요가 없다. 문제풀이 순서는 다음과 같다. 1. 책을 양의 방향에 있는 책과 음의 방향에 있는 책으로 나눈다. 2. 각 방향에 있는 책들을 정렬하여 멀리 있는 책들부터 거리를 구할 수 있게 한다. ※ 음의 방향은 그대로 정렬, 양의 방향은 내림차순으로 정렬 3. ... greedy algorithmbaekjoon알고리즘 문제풀이baekjoon [BaekJoon] 10989 수 정렬하기 (java) 문제를 풀고 효율이 높은 다른 사람의 코드를 보니 Sort에 소모되는 시간과 메모리를 아끼기 위해 조건에서 주어진 값의 수인 10,000의 크기의 배열을 생성하고 input값의 위치의 값을 +1씩 증가하는 방법으로 Sort에 소모되는 연산을 줄였다. (Counting Sort 알고리즘) 그 결과 아래의 사진과 같이 아래에 위치한 결과인 처음 내가 Sort를 하며 코딩한 결과보다 시간, 메모리... baekjoonCounting AlgorithmSort알고리즘 문제풀이Counting Algorithm [BaekJoon] 2176 미로 탐색 (Java) BFSbaekjoon알고리즘 문제풀이BFS [프로그래머스] Level 1 - 평균 구하기 해결방법 반복문을 통해 변수 answer에 배열 arr의 값들을 모두 더하고 arr의 크기로 나눈 평균값을 반환한다. 나의 풀이... 알고리즘 문제풀이알고리즘 문제풀이 BOJ 2003. 수들의 합2(python) BOJ 문제 2003. 수들의 합2 문제설명 N개의 수로 된 수열 A[1], A[2], …, A[N] 이 있다. 이 수열의 i번째 수부터 j번째 수까지의 합 A[i] + A[i+1] + … + A[j-1] + A[j]가 M이 되는 경우의 수를 구하는 프로그램을 작성하시오. 입출력 예 솔루션 투 포인터로 구현하였다. 시작점에서 끝점을 이동하며 구간 합을 구하며 조건을 만족하는지 확인 코드... 투 포인터알고리즘 문제풀이bojboj [BaekJoon] 10282 해킹 (java) 해당 문제는 다익스트라 알고리즘을 적용하는 문제로 다익스트라 알고리즘의 개념을 알고 구현을 할 수 있다면 쉽게 풀 수 있는 문제였다. 하지만 내가 작성한 코드의 경우는 Computer객체에서 연결된 Computer의 정보 및 해당 컴퓨터까지 오는데 걸리는 시간 등의 정보를 HashMap, ArrayList등을 사용하여 한번에 관리를 하다보니 실행시간 및 메모리 사용량이 많은 것을 볼 수 있었... Dijkstra Algorithmbaekjoon알고리즘 문제풀이Dijkstra Algorithm Code Wars Kata "Replace With Alphabet Position" Image source: 주어진 문자열의 모든 문자를 alphatbet 순서로 replace 하시오. text안에 문자가 아닌 것들은 무시하고, 리턴하지 마시오. 예) "a" = 1, "b" = 2, etc. 나의 답 이전에 코드스테이츠 코플릿 문제에서 알파벳관련 문제가 나와, 그 때는 알파벳들을 쭉 나열해 놓고 인덱스를 골라서 썼었는데, 오늘은 다른 방법으로 풀고 싶어서 아스키 코드를 이용... 알고리즘 문제풀이알고리즘 문제풀이 [BaekJoon] 1774 우주신과의 교감 (Java) 크루스칼 알고리즘의 이론과 코드를 짜보는 공부를 했었으나 실제로 문제에 적용하는 것은 처음이라 그런지 문제를 푸는데 많은 시간이 걸렸다. MST 문제는 크게 크루스칼이나 프림 알고리즘을 사용해서 풀어야한다. 두개의 알고리즘을 모두 막힘없이 작성할 수 있으면 좋으나 현재로서는 일단 하나라도 확실하게 작성할 수 있도록 키워야할것 같다. 크루스칼을 확실히 마스터 해야겠다~~🎃... Kruskal's Algorithm알고리즘 문제풀이MSTbaekjoonKruskal's Algorithm [BaekJoon] 10814 나이순 정렬 (java) baekjoon알고리즘 문제풀이SortSort [BaekJoon] 11650 좌표 정렬하기 (java) 기본적인 정렬 문제임에도 Scanner를 통해 input값을 받느냐 BufferedReader를 통해 값을 받느냐, 구현을 어떻게 하느냐에 따라서 메모리 사용량과 실행 시간에 큰 차이가 나는 것을 보고 코딩테스트 연습을 더 많이하고 다른 사람들의 코드들도 참조하며 성장해야겠다는 것을 느끼게 되었다. 이번 문제에서는 BufferReader와 StringTikenizer에 대해서 익히고 넘어가도... baekjoon알고리즘 문제풀이SortBufferedReaderBufferedReader [BaekJoon] 14620 꽃길 (Java) 문제를 풀이할때 처음에는 각각 위치의 cost를 구하고 cost가 작은 위치부터 겹치지 않는 선에서 합을 구하는 식으로 풀이를 하였다. 하지만 이러한 풀이법은 경우에 따라 가장 cost가 적은 위치를 포함하지 않는 최솟값이 나올 수 있기에 잘못된 풀이법이었다. 두번째 풀이법은 3개의 꽃의 위치에 대하여 모든 경우의 수를 탐색하는 방법을 사용하여 풀이를 하였다. 각각 탐색을 하며 꽃이 위치할 ... baekjoon알고리즘 문제풀이baekjoon
[백준_14503] 로봇 청소기 문제 보기: 난이도: 골드 5 알고리즘 분류: 구현, 시뮬레이션 📌 문제에서 주어진 작동 조건에 따라 차례대로 수행하고, 네 방향 탐색 여부를 flag를 사용해 구분했습니다. 방향: 위, 오른쪽, 아래, 왼쪽 순서로 dy와 dx를 정의해 인덱스가 낮아질수록 현재 방향에서 왼쪽으로 회전하도록 합니다. 로봇 청소기: 현재 위치 _y,_x와 현재 방향_dir을 가집니다. 빈 칸은 0, 벽은 1, ... 백준알고리즘 문제풀이삼성 SW 역량테스트백준 [BaekJoon] 1927 최소 힙 (java) 자바에서 제공하는 라이브러리인 PriorityQueue는 일반적으로 최소힙과 같은 동작을 하여서 이번 문제는 PriorityQueue를 사용하여 간단하게 풀었다. 다른 사람들의 상위권에 위치한 성능 좋은 코드들을 보니 모두들 Heap구조를 직접 구현한 것을 확인할 수 있었다. 이를 보면 PriorityQueue자체가 메모리와 시간과 같은 성능 측면에서는 직접 구현한 코드들 보다 좋지는 않은것... heap알고리즘 문제풀이baekjoonbaekjoon [BaekJoon] 1092 배 (Java) 각각 무게 제한이 있는 N개의 크레인으로 M개의 컨테이너를 옮길 때 시간이 얼마나 걸리는지 구하는 문제이다. 문제를 해결하기 위해서는 컨테이너와 크레인을 각각 정렬한 후 각각의 크레인들이 현재 남아있는 컨테이너 중에서 자신이 들을 수 있는 가장 무거운 컨테이너들을 옮기도록 코드를 짜면 된다. 🚨 주의 처음에 문제를 풀며 매 시간당 크레인들이 index가 0인 컨테이너들부터 탐색을 하게 코드를... greedy algorithm알고리즘 문제풀이baekjoonbaekjoon [BaekJoon] 10930 SHA-256 (java) SHA-256은 SHA(Secure Hash Algorithm) 알고리즘의 한 종류로 256비트로 구성되며 64자리 문자열을 반환한다. 해시 알고리즘인 SHA-2 계열 중 하나이며, 2256만큼 경우의 수를 만들 수 있습니다. SHA-256 해시 함수는 어떤 길이의 값을 입력하더라도 256비트의 고정된 결과값을 반환합니다. SHA-256은 단방향 암호화 방식이기 때문에 복호화가 불가능합니다.... SHA-256알고리즘 문제풀이baekjoonSHA-256 [BaekJoon] 1966 프린터 큐 (java) queuebaekjoon알고리즘 문제풀이baekjoon BOJ 16953. A->B(python) BOJ 문제 16953. A->B 문제설명 정수 A를 B로 바꾸려고 한다. 가능한 연산은 다음과 같은 두 가지이다. 2를 곱한다. 1을 수의 가장 오른쪽에 추가한다. A를 B로 바꾸는데 필요한 연산의 최솟값을 구해보자. 입출력 예 솔루션 bfs를 이용한 완전탐색으로 구현 연산 중 B를 넘어가면 무시 B를 찾거나 Queue가 빌 때까지 연산을 수행한다. 코드... 백트래킹알고리즘 문제풀이bojboj [프로그래머스] Level 1 - 문자열 다루기 기본 해결방법 문자열 s를 탐색하며 s의 모든 문자가 숫자라면 true를 하나라도 아닐 경우 false를 반환한다. 나의 풀이... 알고리즘 문제풀이알고리즘 문제풀이 [BaekJoon] 16768 Mooyo Mooyo (Java) 해당 문제는 과거 뿌요뿌요 게임의 pop조건을 구현하는 문제이다. 문제에서는 K개 이상의 같은 수가 붙어있으면 해당 수들은 삭제가 되고 같은 라인에 있는 숫자들이 아래로 내려오는 결과를 보여주면 된다. 해당 문제를 풀기 위해서는 DFS를 사용하여 탐색을 하며 주변에 같은 수들이 몇개가 있는지 탐색 및 해당 위치들을 저장하며 진행해야한다. 만약 탐색을 하며 K개 이상의 블록이 붙어있다면 해당 ... DFSbaekjoon알고리즘 문제풀이DFS [BaekJoon] 1987 알파벳 (Java) 해당 문제는 NQueens문제처럼 상하좌우로 이동을 했을때 이동이 가능한가?에 대해 판단을 하며 DFS로 문제를 해결하면 쉽게 해결할 수 있다. DFS의 종료시점은 깊이가 아닌 이동이 불가능한 상태인지를 판단하며 상하좌우로 이동할 곳이 없으면 DFS를 더이상 깊게 들어가지 않게 코드를 작성하면 된다.... DFSBacktracking알고리즘 문제풀이baekjoonBacktracking [BaekJoon] 1461 도서관 (Java) 문제 정리: 양의 방향과 음의 방향으로 책을 가져다 둬야하는데 한번에 M개의 책을 갖고 갈 수 있으며 마지막에는 제자리로 돌아올 필요가 없다. 문제풀이 순서는 다음과 같다. 1. 책을 양의 방향에 있는 책과 음의 방향에 있는 책으로 나눈다. 2. 각 방향에 있는 책들을 정렬하여 멀리 있는 책들부터 거리를 구할 수 있게 한다. ※ 음의 방향은 그대로 정렬, 양의 방향은 내림차순으로 정렬 3. ... greedy algorithmbaekjoon알고리즘 문제풀이baekjoon [BaekJoon] 10989 수 정렬하기 (java) 문제를 풀고 효율이 높은 다른 사람의 코드를 보니 Sort에 소모되는 시간과 메모리를 아끼기 위해 조건에서 주어진 값의 수인 10,000의 크기의 배열을 생성하고 input값의 위치의 값을 +1씩 증가하는 방법으로 Sort에 소모되는 연산을 줄였다. (Counting Sort 알고리즘) 그 결과 아래의 사진과 같이 아래에 위치한 결과인 처음 내가 Sort를 하며 코딩한 결과보다 시간, 메모리... baekjoonCounting AlgorithmSort알고리즘 문제풀이Counting Algorithm [BaekJoon] 2176 미로 탐색 (Java) BFSbaekjoon알고리즘 문제풀이BFS [프로그래머스] Level 1 - 평균 구하기 해결방법 반복문을 통해 변수 answer에 배열 arr의 값들을 모두 더하고 arr의 크기로 나눈 평균값을 반환한다. 나의 풀이... 알고리즘 문제풀이알고리즘 문제풀이 BOJ 2003. 수들의 합2(python) BOJ 문제 2003. 수들의 합2 문제설명 N개의 수로 된 수열 A[1], A[2], …, A[N] 이 있다. 이 수열의 i번째 수부터 j번째 수까지의 합 A[i] + A[i+1] + … + A[j-1] + A[j]가 M이 되는 경우의 수를 구하는 프로그램을 작성하시오. 입출력 예 솔루션 투 포인터로 구현하였다. 시작점에서 끝점을 이동하며 구간 합을 구하며 조건을 만족하는지 확인 코드... 투 포인터알고리즘 문제풀이bojboj [BaekJoon] 10282 해킹 (java) 해당 문제는 다익스트라 알고리즘을 적용하는 문제로 다익스트라 알고리즘의 개념을 알고 구현을 할 수 있다면 쉽게 풀 수 있는 문제였다. 하지만 내가 작성한 코드의 경우는 Computer객체에서 연결된 Computer의 정보 및 해당 컴퓨터까지 오는데 걸리는 시간 등의 정보를 HashMap, ArrayList등을 사용하여 한번에 관리를 하다보니 실행시간 및 메모리 사용량이 많은 것을 볼 수 있었... Dijkstra Algorithmbaekjoon알고리즘 문제풀이Dijkstra Algorithm Code Wars Kata "Replace With Alphabet Position" Image source: 주어진 문자열의 모든 문자를 alphatbet 순서로 replace 하시오. text안에 문자가 아닌 것들은 무시하고, 리턴하지 마시오. 예) "a" = 1, "b" = 2, etc. 나의 답 이전에 코드스테이츠 코플릿 문제에서 알파벳관련 문제가 나와, 그 때는 알파벳들을 쭉 나열해 놓고 인덱스를 골라서 썼었는데, 오늘은 다른 방법으로 풀고 싶어서 아스키 코드를 이용... 알고리즘 문제풀이알고리즘 문제풀이 [BaekJoon] 1774 우주신과의 교감 (Java) 크루스칼 알고리즘의 이론과 코드를 짜보는 공부를 했었으나 실제로 문제에 적용하는 것은 처음이라 그런지 문제를 푸는데 많은 시간이 걸렸다. MST 문제는 크게 크루스칼이나 프림 알고리즘을 사용해서 풀어야한다. 두개의 알고리즘을 모두 막힘없이 작성할 수 있으면 좋으나 현재로서는 일단 하나라도 확실하게 작성할 수 있도록 키워야할것 같다. 크루스칼을 확실히 마스터 해야겠다~~🎃... Kruskal's Algorithm알고리즘 문제풀이MSTbaekjoonKruskal's Algorithm [BaekJoon] 10814 나이순 정렬 (java) baekjoon알고리즘 문제풀이SortSort [BaekJoon] 11650 좌표 정렬하기 (java) 기본적인 정렬 문제임에도 Scanner를 통해 input값을 받느냐 BufferedReader를 통해 값을 받느냐, 구현을 어떻게 하느냐에 따라서 메모리 사용량과 실행 시간에 큰 차이가 나는 것을 보고 코딩테스트 연습을 더 많이하고 다른 사람들의 코드들도 참조하며 성장해야겠다는 것을 느끼게 되었다. 이번 문제에서는 BufferReader와 StringTikenizer에 대해서 익히고 넘어가도... baekjoon알고리즘 문제풀이SortBufferedReaderBufferedReader [BaekJoon] 14620 꽃길 (Java) 문제를 풀이할때 처음에는 각각 위치의 cost를 구하고 cost가 작은 위치부터 겹치지 않는 선에서 합을 구하는 식으로 풀이를 하였다. 하지만 이러한 풀이법은 경우에 따라 가장 cost가 적은 위치를 포함하지 않는 최솟값이 나올 수 있기에 잘못된 풀이법이었다. 두번째 풀이법은 3개의 꽃의 위치에 대하여 모든 경우의 수를 탐색하는 방법을 사용하여 풀이를 하였다. 각각 탐색을 하며 꽃이 위치할 ... baekjoon알고리즘 문제풀이baekjoon